<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.10/vue.js"></script>
</head>
<body>
<div id="app">
    <p>搜索<input type="text" v-model="goodInfo.search"/></p>
</div>
<script>
    const vm = new Vue({
        el:"#app",
        data(){
            return{
               goodInfo:{
                   search:"oppo",
                   price:1000,
                   num:10
               }
            }
        },
        watch: {
            // 1.只监听search的改变(监听某个对象的某一个属性的写法)
            // "goodInfo.search"(){
            //     console.log("重新更新search")
            // },
            goodInfo: {
                // 2.立即监听:初始数据加载后,没有改变就执行一次
                immediate:true,
                // 3.深度监听
                deep:true,
                //监听的回调函数,监听的数据内容发生改变时就触发
                //4.watch的回调函数接收两个参数,分别是新值和旧值,但如果监听的是一个对象,新值和旧值是一样的
                handler(newVal,oldVal){
                    console.log("goodInfo中的内容发生改变",newVal,oldVal)
                }
            }

        }
    })
</script>
</body>
</html>